In many communication applications, when a node (also referred to here as the “transmitting” node) transmits data to ones or more “receiving” nodes in the network, each of a receiving nodes needs to determine if the data received by that node is the same data that was transmitted by the transmitting node. If that is the case, the receiving node uses the received data in processing performed by that node.
Also, in some applications, even if such a receiving node determines that data received by that node is authentic (that is, is the same data transmitted by the transmitting node), the receiving node needs a mechanism to determine if the transmitting node is “cheating” and transmitting “incorrect” data. In one such application, at least a portion of the data transmitted by the transmitting node is contextual information associated with the transmitting node (for example, a current temperature and location for the transmitting node at the time the transmitting node transmits the data). In such an application, if the transmitting cheats and transmits incorrect contextual information, the processing performed by the receiving node using such information may generate incorrect or otherwise undesirable results.